# 有n个人围成一圈，顺序排号。从第一个人开始报数（从1到3报数），凡报到3的人退出圈子，问最后留下的是原来第几号的那位。

"""
一个经典的约瑟夫环问题（Josephus problem），也被称为“约瑟夫问题”。这个问题描述了一群人围成一圈，从第一个人开始报数，
报到某个特定数字（在这个代码中是3）的人会退出圈子，然后从下一个人重新开始报数，直到只剩下一个人为止。
"""

if __name__ == '__main__':
    n = int(input('请输入总人数:'))
    # 1、获取数组,存储每个人的编号
    num = []
    for i in range(n):
        num.append(i + 1)

    i = 0  # 初始化索引 i，用来遍历列表 num
    k = 0  # 初始化计数器 k，用来记录报数
    m = 0  # 初始化计数器 m，用来记录已经退出圈子的人数

    while m < n - 1:  # 这个循环会一直执行，直到只剩下一个人
        if num[i] != 0:  # 如果当前索引 i 指向的人还在圈子里则报数 k 加1
            k += 1
        if k == 3:
            num[i] = 0  # 将当前索引 i 指向的人标记为退出圈子
            k = 0  # 重置报数计数器 k
            m += 1  # 增加退出圈子的人数计数器 m
        i += 1  # 将索引 i 向右移动到下一个人
        if i == n:  # 如果索引 i 达到列表末尾，将其重置为0，从而实现循环
            i = 0

    i = 0  # 用来找到最后一个没有被标记为退出圈子的人
    while num[i] == 0:
        i += 1
    print(num[i])
